#ifndef _globals_h_
#define _globals_h_

/* When doing paranoid checking of parameters, it subsumes that the
   paranoid data structures are enabled. */

#ifdef paranoidCheck
#ifndef paranoid
#define paranoid
#endif
#endif

/* Make sure that the NULL pointer is always defined. */

#ifndef NULL
#define NULL 0
#endif

typedef enum {False, True} Boolean;
#define boolean Boolean  /* Eventually, everybody will be Boolean */
#define Real    double   /* temporary definition */

typedef void *Ptr;

typedef unsigned long  UInt32;
typedef long           SInt32;
typedef unsigned short UInt16;
typedef short          SInt16;
typedef unsigned char  UInt8;
typedef char           SInt8;

typedef char           Byte;
typedef short          Word;
typedef long           LongWord;

typedef char           Char;

#define Min(A,B) ((A)<(B) ? (A) : (B))
#define Max(A,B) ((A)>(B) ? (A) : (B))
#define GLBL_Tag(A,B,C,D) ((((A) & 0xFF) << 24 ) | \
                           (((B) & 0xFF) << 16 ) | \
                           (((C) & 0xFF) <<  8 ) | \
                           (((D) & 0xFF)))

#endif